signature BUILD_STRUCTS = 
sig
  structure Env : ENV
  structure Frame : FRAME
end

signature BUILD =
sig
  include BUILD_STRUCTS
  val cvtType : Frame.Ir.mytype -> Env.types


  val buildSEnv : Env.key -> 
                  (Env.key * Frame.Ir.mytype) list -> 
                  ((int * Env.types) Env.struct_env) -> 
                  ((int * Env.types) Env.struct_env)
  val buildGEnv : (Env.key * Frame.Ir.mytype) list -> 
                  (bool * int * Env.types) Env.env  -> 
                  (bool * int * Env.types) Env.env
  val buildFEnv : (Env.key * Frame.Ir.mytype) -> 
                  (bool * int * Env.types) Env.env -> 
                  (bool * int * Env.types) Env.env
  val buildEnv :  (Env.key * Frame.Ir.mytype) list ->  
                  (bool * int * Env.types) Env.env -> 
                  'b Env.struct_env -> 
                  'c -> 
                  ('c -> int -> int) -> 
                  (bool * int * Env.types) Env.env
end

